Nowadays as the virtualization techniques become more and more popular, many information technology (IT) solutions on the physical platform are being moved into the virtual environment. Yet these new virtual version solutions still face many challenges. Among these challenges, Input/output (I/O) related Quality of Service (QoS) is considered as a critical problem.
Generally, the virtual environment contains I/O stacks. A virtual disk in the guest operating system is allocated from a Datastore in the Virtual Machine (VM) hypervisor. Datastore indicates a virtual storage device from a storage pool of the virtual environment. It can be a Virtual Machine File System (VMFS) file or a Network File System (NFS) file. In the context herein, the term “Datastore” may be used interchangeably to represent the virtual storage device in the hypervisor.
For the I/O QoS, different layers in the I/O stack focus on different aspects. For example, the hypervisor I/O stack schedules I/O on a VM-level, which means reserving larger I/O bandwidth for the virtual machine that has a higher priority. The backend storage device schedules I/O on a hypervisor-level. which decides the shared I/O bandwidth between different hypervisors. Moreover, within the virtual machine, I/O QoS between different processes should be managed. Such I/O scheduling may be referred to as application-aware I/O scheduling, namely, scheduling according to factors of I/O usage and/or source, etc. Presently, in the virtual environment, there is a need for an effective solution for application-aware I/O QoS.